package org.footballmanager.pandafootball.system.service;

import org.footballmanager.pandafootball.system.domain.FootCupbm;
import org.springframework.ui.Model;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface FootCupbmService extends BaseService<FootCupbm> {
    /**
     * 根据用户主键查找杯赛报名信息
     *
     * @param userId 用户主键
     * @return 杯赛报名信息
     */
    FootCupbm findCupbmByUserid(Long userId);

    /**
     * 根据赛季、杯赛类型、杯赛进程获取杯赛报名信息
     *
     * @param sjId 赛季主键
     * @param type 杯赛类型
     * @param num  杯赛进程
     * @return 杯赛报名信息列表
     */
    List<FootCupbm> findList(Long sjId, boolean type, int num);

    /**
     * 各种杯赛的计算
     *
     * @param times   第几次报分
     * @param request 请求
     */
    void endCupGames(int times, HttpServletRequest request);

    /**
     * 根据赛季信息报名冠军杯和联盟杯
     *
     * @param request 请求
     */
    void addTeam2Table(HttpServletRequest request);

    /**
     * 根据杯赛类型获取当前赛季的第一名
     *
     * @param type 类型
     * @return 当前赛季的第一名
     */
    FootCupbm getTop1(boolean type);

    /**
     * 根据比赛类型和赛季主键获取报名信息列表
     *
     * @param type 比赛类型
     * @param sjId 赛季主键
     * @return 报名信息列表
     */
    List<FootCupbm> findByTypeAndSj(Boolean type, Long sjId);

    /**
     * 对战
     *
     * @param type 类型
     * @param map  参数
     */
    void bettle(boolean type, Model map);
}